package pokerSaloon.controller;

import pokerSaloon.ServeurPoker;
import pokerSaloon.model.User;
import pokerSaloon.model.UserImpl;
import pokerSaloon.vue.OutilsInterface;
import pokerSaloon.vue.fenAccueil;

public class AccueilController extends Controller{
	
	
	public AccueilController(){
		super();
		this.setView(new fenAccueil(this));
	}
	

	  /**
     * Connecter le joueur au serveur spécifié.
     * @param c La fenetre d'accueil parente.
     * @param ip L'adresse IP du serveur saisie par l'utilisateur.
     * @param pseudo Le pseudonyme choisi par l'utilisateur.
     */
    public void connexion(String adresseIP, String pseudo) {

        if (pseudo.length() < 3) {
        	getView().afficheMsgDialog(OutilsInterface.pseudoInvalide(pseudo), OutilsInterface.getTitlePseudoInvalide());
        } else {
        	
            try {
                // Connexion à la machine serveur.                
                ServeurPoker.setIp(adresseIP);
              

                User user = UserImpl.getInstance();
                user.setPseudo(pseudo);
                

                // Connexion du joueur au Poker Saloon.
                if ( ServeurPoker.getInstance().connecter(user, pseudo)) {
                	
                    Controller controllerPartie = FactoryController.getListePartieController();
                    controllerPartie.getView().displayView();
                    getView().removeView();

                } else {
                    // Si pseudo déjà utilisé, on affiche un message à l'utilisateur.
                    getView().afficheMsgDialog(OutilsInterface.pseudoInvalide(pseudo), OutilsInterface.getTitlePseudoInvalide()); ;
                }
                
            } catch (Exception e) {
            	e.printStackTrace();
                // Si la connexion est impossible, on affche un message à l'utilisateur.
                getView().afficheMsgDialog(OutilsInterface.ipInvalide(adresseIP), OutilsInterface.getTitleIpInvalide());
            }
        }
    }
	
}
